<!DOCTYPE html>
<html lang="en">
	<!-- TODO: massive work in progress; very experimental at the moment -->
	<head>
		<meta charset="utf-8"/>
		<link href="lib/tabulator.min.css" rel="stylesheet" media="(prefers-color-scheme: light)">
		<link href="lib/tabulator_midnight.min.css" rel="stylesheet" media="(prefers-color-scheme: dark)">
		<link href="lib/tabulator_midnight_override.css" rel="stylesheet" media="(prefers-color-scheme: dark)">
		<title>Interactive IDA Plugin List</title>
		<style>
			body {
				font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
				font-size: 16px;
			}
			h1 {
				font-size: 2em;
				font-weight: 600;
				line-height: 1.25;
			}

			h1.title {
				text-align: center;
				margin-top: 1em;
				/*margin-bottom: 2em;*/
			}

			.tagline {
				text-align: center;
				/*max-width: 60%;*/
				font-style: italic;
			}

			.section {
				font-weight: 600;
				font-size: 1.5em;
				margin-top: 1em;
				margin-bottom: 7px;
			}

			span.stat-elem {
				margin-right: 14px;
			}

			span.stat-val {
				color: #6589bd;
			}

			dl {
			  	display: grid;
				grid-template-columns: max-content auto;
			}

			dt {
			  	grid-column-start: 1;
				margin-bottom: 5px;
			}

			dd {
			  	grid-column-start: 2;
			}

			.no-underline a {
				text-decoration: none;
			}
			.no-underline a:hover {
				text-decoration: underline;
			}
			@media (prefers-color-scheme: dark) {
			    body {
					color: #cdd9e5;
					background: #23272d;
			    }
				a {
					color: #539bf5;
				}
				span.stat-val {
					color: orange;
				}

			}
		</style>

	</head>
	<body>
		<h1 class="title">The Interactive IDA Plugin List</h1>
		<p class="tagline">A comprehensive list of plugins for
			<a href="https://hex-rays.com/ida-pro/">IDA Pro</a>.</p>
		<p></p>

		<div class="section">Contributing</div>
		Know of a plugin not in the list? Saw a typo? A better way to describe a plugin?
		Go to <a href="https://github.com/vmallet/ida-plugins">the repo</a> and send a PR!
		If you feel you have the skills to improve this terrible UI please feel free to
		contribute too!

		<p></p>
		<div class="section">Filters</div>
		<div>
			<!-- Doing layout with tables! Someone stop me, please! -->
			<table>
				<tr style="vertical-align: top">
					<td>
						<!-- Hardcoded at the moment; should generate from the data we have -->
						<label>Source:&nbsp;</label><br/>
						<input type="checkbox" id="src-cpp" name="src-cpp" value="c++"/>
						<label for="src-cpp">c++</label>
						<input type="checkbox" id="src-py" name="src-py" value="py"/>
						<label for="src-py">py</label>
					</td>
					<td style="min-width: 20px;"></td>
					<!-- Please help me make a half-decent webpage! -->
					<td>
						<div>
							<label>Categories:&nbsp;</label><br/>
							<table>
								<tr>
									<td>
										<input type="checkbox" id="cats-collab"
											   name="cats-collab" value="collab"/>
										<label for="cats-collab">Collaboration
											(collab)</label>
									</td>
									<td>
										<input type="checkbox" id="cats-debug"
											   name="cats-debug" value="debug"/>
										<label for="cats-debug">Debug</label>
									</td>
									<td>
										<input type="checkbox" id="cats-decomp"
											   name="cats-decomp" value="decomp"/>
										<label for="cats-decomp">Decompiler (decomp)</label>
									</td>
									<td>
										<input type="checkbox" id="cats-deobf"
											   name="cats-deobf" value="deobf"/>
										<label for="cats-deobf">Deobfuscation
											(deobf)</label>
									</td>
									<td>
										<input type="checkbox" id="cats-dev" name="cats-dev"
											   value="dev"/>
										<label for="cats-dev">Development (dev)</label>
									</td>
								</tr>
								<tr>
									<td>
										<input type="checkbox" id="cats-int" name="cats-int"
											   value="int"/>
										<label for="cats-int">Integration (int)</label>
									</td>
									<td>
										<input type="checkbox" id="cats-loader"
											   name="cats-loader" value="loader"/>
										<label for="cats-loader">Loader</label>
									</td>
									<td>
										<input type="checkbox" id="cats-proc"
											   name="cats-proc" value="proc"/>
										<label for="cats-proc">Proc</label>
									</td>
									<td>
										<input type="checkbox" id="cats-trace"
											   name="cats-trace" value="trace"/>
										<label for="cats-trace">Trace</label>
									</td>
									<td>
										<input type="checkbox" id="cats-ui" name="cats-ui"
											   value="ui"/>
										<label for="cats-ui">UI</label>
									</td>
								</tr>
							</table>
						</div>
					</td>
				</tr>
			</table>
		</div>

		<div id="loading">Loading...</div>
		<div id="stats" style="visibility: hidden;">
			Showing <span id="plugin-count" class="stat-val">N</span> plugins:
			<dl>
				<dt>Languages:</dt>
				<dd><span id="stats-languages"></span></dd>
				<dt>Categories:</dt>
				<dd><span id="stats-categories"></span></dd>
			</dl>
		</div>

		<div class="no-underline" id="plugin-table"><i>Loading...</i></div>

		<script type="text/javascript" src="lib/moment.min.js"></script>
		<script type="text/javascript" src="lib/tabulator.min.js"></script>
		<script type="text/javascript" src="lib/jquery-3.6.0.slim.min.js"></script>
		<script type="text/javascript" src="data.js"></script>
		<script type="text/javascript" src="main.js"></script>

		<p>Author: <a href="https://github.com/vmallet">Vincent Mallet</a>.
			See <a href="https://github.com/vmallet/ida-plugins">source</a></p>
	</body>
</html>
